import pika
import requests
from RabbitMQClass import get_connection


QUEUE_NAME = 'scrape'
connection = get_connection()
channel = connection.channel()
MAX_PRIORITY = 100
# 基础队列启动， 要开启持久化存储，可以在声明队列时指定 durable 为 True ,添加生产者的消息的时候需要指定 BasicProperties 对象的 delivery_mode 为 2
# 声明队列的时候，我们增加了一个参数，叫做 x-max-priority，指定一个最大优先级，这样整个队列就支持优先级了,对应生产者也需要发送消息的时候指定一个 properties 参数为 BasicProperties 对象，BasicProperties 对象里面通过 priority 参数指定了对应消息的优先级，
channel.queue_declare(queue=QUEUE_NAME, durable=True, arguments={
    'x-max-priority': MAX_PRIORITY
})

while True:
    # 一直循环执行
    data, priority = input().split();  # 生产写入格式，data 空格 整数优先级（队里启动时配置的，当前是最大100)）
    # 添加一个基本的队列数据 -生产者
    channel.basic_publish(exchange='', routing_key=QUEUE_NAME, body=data,
                      properties=pika.BasicProperties(priority=int(priority), delivery_mode=2))
    print(f'Put {data} --- {priority}')
